package com.danielececi.myexpenses;

import java.text.ParseException;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.util.Log;

import com.danielececi.constants.IConstants;
import com.danielececi.database.DatabaseHelper;
import com.danielececi.utils.Utility;

public class DialogCancellaSpesa extends DialogFragment {
	
	private int idSpesa;
	private String importoFormattato;
	private String dataFormattata;
    private String categoriaAppartenenza;
    private String note;
    private DatabaseHelper dbHelper;
    private GridActivity chiamante;
	
	@Override
	public Dialog onCreateDialog(Bundle savedInstanceState) {
		this.recuperaDatiSpesaSelezionata();

		AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
		String messaggioCancellaSpesa = this.getResources().getString(R.string.conferma_cancella_spesa) + "\n\n";
		messaggioCancellaSpesa += this.dataFormattata + "\n";
		messaggioCancellaSpesa += this.importoFormattato + " " + this.getResources().getString(R.string.label_euro) + "\n";
		messaggioCancellaSpesa += this.categoriaAppartenenza + "\n";
		messaggioCancellaSpesa += this.note;
		
		builder.setMessage(messaggioCancellaSpesa)
		.setPositiveButton(R.string.btn_cancella_ok, new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog, int id) {
				//Cancello la spesa dal DB TODO trovare il modo di istanziare/recuperare il dbHelper
				dbHelper.deleteSpesa(idSpesa);
				
				//Aggiorno la lista in pagina
				try {
					chiamante.aggiornaDataTableSpese();
				} catch (ParseException e) {
					Log.e(IConstants.LOG_DELETE_DIALOG, e.getMessage());
				}
			}
		})
		.setNegativeButton(R.string.btn_cancella_ko, new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog, int id) {
				//Non faccio niente: nascondo solo il dialog			
			}
		});
		// Create the AlertDialog object and return it
		return builder.create();
	}
	
	private void recuperaDatiSpesaSelezionata(){
		//Recupero il DatabaseHelper
		this.chiamante = (GridActivity)getActivity();
		this.dbHelper = chiamante.getDatabaseHelper();
		
		//Leggo i dati dal Bundle
		Bundle datiSpesaSelezionata = this.getArguments();
		
		String idSpesaString = datiSpesaSelezionata.getString(IConstants.KEY_ID); 
		this.idSpesa = Utility.stringToInt(idSpesaString);
		this.importoFormattato = datiSpesaSelezionata.getString(IConstants.KEY_IMPORTO);
		this.dataFormattata = datiSpesaSelezionata.getString(IConstants.KEY_DATA);
		this.categoriaAppartenenza = datiSpesaSelezionata.getString(IConstants.KEY_CATEGORIA_APPARTENENZA);
		this.note = datiSpesaSelezionata.getString(IConstants.KEY_NOTE);
	}
}

